Method of Coding and Decoding Images, Coding and Decoding Device and Computer Programs Corresponding Thereto

ABSTRACT

A method is provided for coding at least one image split up into partitions, a current partition to be coded containing data, at least one data item of which is allotted a sign. The coding method includes, for the current partition, the following steps: calculating the value of a function representative of the data of the current partition with the exclusion of the sign; comparing the calculated value with a predetermined value of the sign; as a function of the result of the comparison, modifying or not modifying at least one of the data items of the current partition, in the case of modification, coding the at least one modified data item.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a Section 371 National Stage Application ofInternational Application No. PCT/FR2012/052551, filed Nov. 6, 2012,which is incorporated by reference in its entirety and published as WO2013/068683 on May 16, 2013, not in English.

FIELD OF THE INVENTION

The present invention pertains generally to the field of the processingof images, and more precisely to the coding and to the decoding ofdigital images and of sequences of digital images.

The invention can thus, in particular, be applied to the video codingimplemented in current video coders (MPEG, H.264, etc.) or forthcomingvideo coders (ITU-T/VCEG (H.265) or ISO/MPEG (HEVC).

BACKGROUND OF THE INVENTION

Current video coders (MPEG, H.264, etc.) use a block-wise representationof the video sequence. The images are split up into macro-blocks, eachmacro-block is itself split up into blocks and each block, ormacro-block, is coded by intra-image or inter-image prediction. Thus,certain images are coded by spatial prediction (intra prediction), whileother images are coded by temporal prediction (inter prediction) withrespect to one or more coded-decoded reference images, with the aid of amotion compensation known by the person skilled in the art.

For each block there is coded a residual block, also called predictionresidual, corresponding to the original block decreased by a prediction.The residual blocks are transformed by a transform of discrete cosinetransform (DCT) type, and then quantized with the aid of a quantizationfor example of scalar type. Coefficients, some of which are positive andothers negative, are obtained on completion of the quantization step.They are thereafter traversed in an order of reading, generally zig-zag(as in the JPEG standard), thereby making it possible to utilize thesignificant number of zero coefficients in the high frequencies. Oncompletion of the aforementioned traversal, a one-dimensional list ofcoefficients is obtained, which will be called “quantized residual”. Thecoefficients of this list are then coded by an entropy coding.

The entropy coding (for example of arithmetical coding or Huffman codingtype) is performed in the following manner:

-   -   an item of information is coded entropically to indicate the        location of the last non-zero coefficient of the list,    -   for each coefficient situated before the last non-zero        coefficient, an item of information is coded entropically to        indicate whether the coefficient is or is not zero,    -   for each previously indicated non-zero coefficient, an item of        information is coded entropically to indicate whether the        coefficient is or is not equal to one,    -   for each non-zero coefficient not equal to one situated before        the last non-zero coefficient, an amplitude item of information        (absolute value of the coefficient decreased by two) is coded        entropically,    -   for each non-zero coefficient, the sign which is allotted to it        is coded by a ‘0’ (for the + sign) or a ‘1’ (for the − sign).

According to the H.264 technique for example, when a macroblock is splitup into blocks, a data signal, corresponding to each block, istransmitted to the decoder. Such a signal comprises:

-   -   the quantized residuals contained in the aforementioned list,    -   information representative of the mode of coding used, in        particular:        -   the mode of prediction (intra prediction, inter prediction,            default prediction carrying out a prediction for which no            item of information is transmitted to the decoder (“skip”));        -   information specifying the type of prediction (orientation,            reference image, etc.);        -   the type of partitioning;        -   the type of transform, for example 4×4 DCT, 8×8 DCT, etc.        -   the motion information if necessary;        -   etc.

The decoding is done image by image, and for each image, macroblock bymacroblock. For each partition of a macroblock, the correspondingelements of the stream are read. The inverse quantization and theinverse transformation of the coefficients of the blocks are performedso as to produce the decoded prediction residual. Next, the predictionof the partition is calculated and the partition is reconstructed byadding the prediction to the decoded prediction residual.

The intra or inter coding by competition, such as implemented in theH.264 standard, thus relies on various items of coding information, suchas those aforementioned, being set into competition with the aim ofselecting the best mode, that is to say that which will optimize thecoding of the partition considered according to a predeterminedperformance criterion, for example the bitrate/distortion cost wellknown to the person skilled in the art.

The information representative of the mode of coding selected iscontained in the data signal transmitted by the coder to the decoder.The decoder is thus capable of identifying the mode of coding selectedat the coder, and then of applying the prediction in accordance withthis mode.

In the document “Data Hiding of Motion Information in Chroma and LumaSamples for Video Compression”, J.-M. Thiesse, J. Jung and M. Antonini,International workshop on multimedia signal processing, 2011, there ispresented a data hiding method implemented in the course of videocompression.

More precisely, it is proposed to avoid including in the signal to betransmitted to the decoder at least one competition index such as arisesfrom a plurality of competition indices to be transmitted. Such an indexis for example the index MVComp which represents an item of informationmaking it possible to identify the motion vector predictor used for ablock predicted in Inter mode. Such an index, which can equal 0 or 1, isnot inscribed directly into the coded data signal, but transported bythe parity of the sum of the coefficients of the quantized residual. Anassociation is created between the parity of the quantized residual andthe index MVComp. By way of example, the even value of the quantizedresidual is associated with the index MVComp of value 0, while the oddvalue of the quantized residual is associated with the index MVComp ofvalue 1. Two cases can occur. In a first case, if the parity of thequantized residual already corresponds to that of the index MVComp thatit is desired to transmit, the quantized residual is coded in aconventional manner. In a second case, if the parity of the quantizedresidual is different from that of the index MVComp that it is desiredto transmit, there is undertaken a modification of the quantizedresidual in such a way that its parity is the same as that of the indexMVComp. Such a modification consists in incrementing or decrementing oneor more coefficients of the quantized residual by an odd value (e.g.:+1, −1, +3, −3, +5, −5, etc.) and to retain only the modification whichoptimizes a predetermined criterion, in this instance the aforementionedbitrate-distortion cost.

At the decoder, the index MVComp is not read from the signal. Thedecoder simply makes do with determining the residual conventionally. Ifthe value of this residual is even, the index MVComp is set to 0. If thevalue of this residual is odd, the index MVComp is set to 1.

In accordance with the technique which has just been presented, thecoefficients which undergo the modification are not always chosen in anoptimal manner, so that the modification applied gives rise todisturbances in the signal transmitted to the decoder. Such disturbancesare inevitably detrimental to the effectiveness of the videocompression.

Moreover, the index MVComp does not constitute the most beneficial itemof information to be hidden since the probabilities that this index isequal to 0 or to 1 are not equal. Consequently, if this index is codedin a conventional manner by entropy coding, it will be represented, inthe compressed file to be transmitted to the decoder, by a smallerquantity of data than one bit per index MVComp transmitted.Consequently, if the index MVComp is transmitted in the parity of thequantized residual, the quantity of data thus saved is smaller than onebit per index MVComp, whereas the parity of the residual could make itpossible to transport an item of information of one bit per index.

Consequently, the reduction in the signaling cost, as well as theeffectiveness of the compression, are not optimal.

SUMMARY OF THE INVENTION

An embodiment of the present invention relates to a method for coding atleast one image split up into partitions, a current partition to becoded containing data at least one data item of which is allotted asign.

The method according to the invention is noteworthy in that itimplements, for the aforementioned current partition, the followingsteps:

-   -   calculation of the value of a function representative of the        data of said current partition with the exclusion of the sign,    -   comparison of the calculated value with a predetermined value of        the sign,    -   as a function of the result of the comparison, modification or        otherwise of at least one of the data of the current partition,    -   in the case of modification, coding of the at least one modified        data item.

Such an arrangement makes it possible advantageously to apply the datahiding technique to the signs of the data of a partition to be coded. Asign is indeed an item of information that it is particularly relevantto hide because of the fact that the probability of appearance of apositive or negative sign is equiprobable. Therefore, given that a signis necessarily coded on a bit, it is thus possible, by hiding this itemof information, to make a saving of one bit in the signal to betransmitted to the decoder, thereby substantially reducing the signalingcost.

It should be noted that among the information (sign, amplitude, etc.)associated with an image data item, very few of them are equiprobable.The sign being an equiprobable item of information, there is therefore aspecific benefit in hiding an item of information of this type, therebymaking it possible to increase the compression performance.

In a particular embodiment, in the case where a plurality of signs isconsidered in the course of the aforementioned comparison step, thelatter consists in comparing the calculated value of a functionrepresentative of the data of the current partition with the value of afunction representative of the plurality of signs.

Such an arrangement makes it possible to optimize the compressionperformance of the arithmetical coder while optimizing the reduction inthe signaling cost, since it makes it possible to hide several signs inthe signal to be transmitted to the decoder.

Correlatively, the invention relates to a device for coding at least oneimage split up into partitions, a current partition to be codedcontaining data at least one data item of which is allotted a sign.

Such a coding device is noteworthy in that it comprises processing meanswhich, for the current partition to be coded, are able to:

-   -   calculate the value of a function representative of the data of        the current partition with the exclusion of the sign,    -   compare the calculated value with a predetermined value of the        sign,    -   modify or otherwise at least one of the data of the current        partition as a function of the result of the comparison,        and in that it comprises means for coding the at least one        modified data item, in the case of modification by the        processing means.

In a corresponding manner, the invention also relates to a method fordecoding a data signal representative of at least one image split upinto partitions which has been previously coded, a current partition tobe decoded containing data at least one data item of which is allotted asign.

Such a decoding method is noteworthy in that it comprises, for thecurrent partition, the following steps:

-   -   decoding of the data of the current partition, with the        exclusion of the sign,    -   calculation of the value of a function representative of the        decoded data of the current partition,    -   obtaining, on the basis of the calculated value, of the value of        the sign.

In a particular embodiment, a plurality of values associatedrespectively with a plurality of signs is obtained on the basis of thecalculated value.

Correlatively, the invention relates to a device for decoding a datasignal representative of at least one image split up into partitionswhich has been previously coded, a current partition to be decodedcontaining data at least one data item of which is allotted a sign.

Such a decoding device is noteworthy in that it comprises processingmeans which, for the current partition to be decoded, are able to:

-   -   decode the data of the current partition, with the exclusion of        the sign,    -   calculate the value of a function representative of the decoded        data of the current partition,    -   obtain, on the basis of the calculated value, the value of the        sign.

The invention is also aimed at a computer program comprisinginstructions for the execution of the steps of the coding or decodingmethod hereinabove, when the program is executed by a computer.

Such a program can use any programming language, and be in the form ofsource code, object code, or of code intermediate between source codeand object code, such as in a partially compiled form, or in any otherdesirable form.

Yet another subject of the invention is also aimed at a recording mediumreadable by a computer, and comprising instructions for computer programsuch as mentioned hereinabove.

The recording medium can be any entity or device capable of storing theprogram. For example, such a medium can comprise a storage means, suchas a ROM, for example a CD ROM or a microelectronic circuit ROM, or elsea magnetic recording means, for example a diskette (floppy disk) or ahard disk.

Moreover, such a recording medium can be a transmissible medium such asan electrical or optical signal, which can be conveyed via an electricalor optical cable, by radio or by other means. The program according tothe invention can be in particular downloaded from a network of Internettype.

Alternatively, such a recording medium can be an integrated circuit intowhich the program is incorporated, the circuit being adapted to executethe method in question or to be used in the execution of the latter.

The coding device, the decoding method, the decoding device and theaforementioned computer programs exhibit at least the same advantages asthose conferred by the coding method according to the present invention.

BRIEF DESCRIPTION OF THE DRAWINGS

Other characteristics and advantages will become apparent on reading twopreferred embodiments described with reference to the figures in which:

FIG. 1 represents the general steps of the coding method according tothe invention,

FIG. 2 represents a coding device according to the invention which isable to perform the steps of the coding method of FIG. 1,

FIG. 3 represents a particular embodiment of the coding method accordingto the invention,

FIG. 4 represents a particular embodiment of a coding device accordingto the invention,

FIG. 5 represents the general steps of the decoding method according tothe invention,

FIG. 6 represents a decoding device according to the invention which isable to perform the steps of the decoding method of FIG. 5,

FIG. 7 represents a particular embodiment of the decoding methodaccording to the invention,

FIG. 8 represents a particular embodiment of a decoding device accordingto the invention.

DETAILED DESCRIPTION OF THE CODING PART

A general embodiment of the invention will now be described, in whichthe coding method according to the invention is used to code a sequenceof images according to a binary stream close to that which is obtainedby a coding according to the H.264/MPEG-4 AVC standard. In thisembodiment, the coding method according to the invention is for exampleimplemented in a software or hardware manner by modifications of a coderinitially complying with the H.264/MPEG-4 AVC standard.

The coding method according to the invention is represented in the formof an algorithm comprising steps S1 to S40, represented in FIG. 1.

According to the embodiment of the invention, the coding methodaccording to the invention is implemented in a coding device or coder COof which an embodiment is represented in FIG. 2.

In accordance with the invention, there is undertaken, prior to thecoding proper, a splitting of an image IE of a sequence of images to becoded in a predetermined order, into a plurality Z of partitions B₁, B₂,. . . , B_(i), . . . , B_(Z), as represented in FIG. 2.

It should be noted that, within the meaning of the invention, the term“partition” signifies coding unit. The latter terminology is inparticular used in the HEVC/H.265 standard currently being formulated,for example in the document accessible at the following Internetaddress: http://phenix.int-evry.fr/jct/doc end user/currentdocument.php?id=3286.

In particular, such a coding unit groups together sets of pixels ofrectangular or square shape, also called blocks, macroblocks, or elsesets of pixels exhibiting other geometric shapes.

In the example represented in FIG. 2, said partitions are blocks whichhave a square shape and all have the same size. As a function of thesize of the image which is not necessarily a multiple of the size of theblocks, the last blocks on the left and the last blocks at the bottommight not be square. In an alternative embodiment, the blocks may be forexample of rectangular size and/or not aligned one with another.

Each block or macroblock may moreover itself be divided into sub-blockswhich are themselves subdividable.

Such a splitting is performed by a partitioning module PCO representedin FIG. 2 which uses for example a partitioning algorithm well known assuch.

Subsequent to said splitting step, there is undertaken the coding ofeach of the current partitions B_(i) (i being an integer such that1≦i≦Z) of said image IE.

In the example represented in FIG. 2, such a coding is appliedsuccessively to each of the blocks B₁ to B_(Z) of the current image IE.The blocks are coded according to for example a traversal such as the“raster scan” traversal well known to the person skilled in the art.

The coding according to the invention is implemented in a codingsoftware module MC_CO of the coder CO, such as represented in FIG. 2.

In the course of a step S1 represented in FIG. 1, the coding moduleMC_CO of FIG. 2 selects as current block B_(i) the first block B₁ to becoded of the current image IE. As represented in FIG. 2, this is thefirst left block of the image IE.

In the course of a step S2 represented in FIG. 1, there is undertakenthe extraction of data of the current block B₁ in the form of a listD₁=(a₁, a₂, . . . , a_(P)). Such an extraction is performed by asoftware module EX_CO such as represented in FIG. 2. Such data are forexample pixel data, the non-zero pixel data each being allotted eitherwith a positive sign, or with a negative sign.

Each of the data of the list D₁ is associated with various items ofdigital information which are intended to undergo an entropy coding.Items of digital information such as these are described hereinbelow byway of example:

-   -   for each data item situated before the last non-zero data item        of the list D₁, a digital item of information, such as a bit, is        intended to be coded entropically to indicate whether the data        item is or is not zero: if the data item is zero, it is for        example the bit of value 0 which will be coded, while if the        data item is non-zero, it is the bit of value 1 which will be        coded;    -   for each non-zero data item, a digital item of information, such        as a bit, is intended to be coded entropically to indicate        whether the absolute value of the data item is or is not equal        to one: if it is equal to 1, it is for example the bit of value        1 which will be coded, while if it is not equal to 1, it is the        bit of value 0 which will be coded;    -   for each non-zero data item whose absolute value is not equal to        one and which is situated before the last non-zero data item, an        amplitude item of information is coded entropically,    -   for each non-zero data item, the sign which is allotted to it is        coded by a digital item of information, such as a bit for        example set to ‘0’ (for the + sign) or to ‘1’ (for the − sign).

The specific coding steps according to the invention will now bedescribed with reference to FIG. 1.

In accordance with the invention, it is decided to avoid entropicallycoding at least one sign of one of said data of the list D₁.

In accordance with the preferred embodiment, it is the sign of the firstnon-zero data item which is intended to be hidden. Such a sign is forexample positive and allotted to the first non-zero data item, such asfor example the data item a₂.

In the course of a step S3 represented in FIG. 1, the processing moduleMTR_CO calculates the value of a function f which is representative ofthe data of the list D₁.

In the preferred embodiment where a single sign is intended to be hiddenin the signal to be transmitted to the decoder, the function f is theparity of the sum of the data of the list D₁.

In the course of a step S4 represented in FIG. 1, the processing moduleMTR_CO verifies whether the parity of the value of the sign to be hiddencorresponds to the parity of the sum of the data of the list D₁, byvirtue of a convention defined previously at the coder CO.

In the example proposed, said convention is such that a positive sign isassociated with a bit of value equal to zero, while a negative sign isassociated with a bit of value equal to one.

If, in accordance with the convention adopted in the coder CO accordingto the invention, the sign is positive, thereby corresponding to a zerocoding bit value, and if the sum of the data of the list D₁ is even,there is undertaken a step S20 of entropy coding of the data of theaforementioned list D₁, with the exception of the sign of the firstnon-zero data item a₂. Such a step S20 is represented in FIG. 1.

If, still in accordance with the convention adopted in the coder COaccording to the invention, the sign is negative, thereby correspondingto a one coding bit value, and if the sum of the data of the list D₁ isodd, there is also undertaken the step S20 of entropy coding of the dataof the aforementioned list D₁, with the exception of the sign of thefirst non-zero data item a₂.

If, in accordance with the convention adopted in the coder CO accordingto the invention, the sign is positive, thereby corresponding to a zerocoding bit value, and if the sum of the data of the list D₁ is odd,there is undertaken, in the course of a step S5 represented in FIG. 1, amodification of at least one modifiable data item of the list D₁.

If, still in accordance with the convention adopted in the coder COaccording to the invention, the sign is negative, thereby correspondingto a one coding bit value, and if the sum of the data of the list D₁ iseven, there is also undertaken step S5 of modifying at least onemodifiable data item of the list D₁.

According to the invention, a data item is modifiable if themodification of its value does not cause any desynchronization at thedecoder, once this modified data item is processed by the decoder. Thus,the processing module MTR_CO is configured initially so as not tomodify:

-   -   the zero data item or data situated before the first non-zero        data item, in such a way that the decoder does not allot the        value of the hidden sign to this or these zero data.    -   and for calculation complexity reasons, the zero data item or        data situated after the last non-zero data item.

Such a modification operation is performed by the processing moduleMTR_CO of FIG. 2.

In the proposed exemplary embodiment, it is assumed that the total sumof the data of the list D₁ is equal to 5, and is therefore odd. So thatthe decoder can reconstruct the positive sign allotted to the firstnon-zero data item a₂, without the coder CO having to transmit this dataitem to the decoder, it is necessary that the parity of the sum becomeeven. Consequently, the processing module MTR_CO tests, in the course ofsaid step S5, various modifications of data of the list D₁, all aimed atchanging the parity of the sum of the data. In the preferred embodiment,there is undertaken the addition of +1 or −1 to each modifiable dataitem and the selection, according to a predetermined criterion, of amodification from among all those performed.

A modified list Dm₁=(a′₁, a′₂, . . . , a′_(P)) is then obtained, oncompletion of step S5.

It should be noted that, in the course of this step, certainmodifications are prohibited. Thus, in the case where the first non-zerodata item equals+1, it would not be possible to add−1 to it, since itwould become zero, and it would then lose its characteristic of firstnon-zero data item of the list D₁. The decoder would then subsequentlyallocate the decoded sign (by calculation of the parity of the sum ofthe data) to another data item, and there would then be a decodingerror.

There is thereafter undertaken step S20 of entropy coding of the data ofthe aforementioned list Dm₁, with the exception of the positive sign ofthe first non-zero data item a₂, which sign is hidden in the parity ofthe sum of the data.

It should be noted that the set of amplitudes of the data of the list D₁or of the modified list Dm₁ is coded before the set of signs, with theexclusion of the sign of the first non-zero data item which is notcoded, as was explained hereinabove.

In the course of a following step S30 represented in FIG. 1, the codingmodule MC_CO of FIG. 2 tests whether the coded current block is the lastblock of the image IE.

If the current block is the last block of the image IE, in the course ofa step S40 represented in FIG. 1, the coding method is terminated.

If such is not the case, there is undertaken the selection of thefollowing block B_(i) which is then coded in accordance with theaforementioned raster scan order of traversal, by iteration of steps S1to S20, for 1≦i≦Z.

Once the entropy coding of all the blocks B₁ to B_(Z) has been carriedout, there is undertaken the construction of a signal F representing, inbinary form, said coded blocks.

The construction of the binary signal F is implemented in a streamconstruction software module CF, such as represented in FIG. 2.

The stream F is thereafter transmitted by a communication network (notrepresented), to a remote terminal. The latter comprises a decoder whichwill be described in greater detail in the subsequent description.

Another embodiment of the invention will now be described, mainly withreference to FIG. 1.

This other embodiment is distinguished from the previous one solely bythe number of signs to be hidden which is N, N being an integer suchthat N≧2.

For this purpose, the function f is the remainder modulo 2^(N) of thesum of the data of the list D₁. It is assumed that in the exampleproposed, N=2, the two signs to be hidden are the first two signs of thefirst two non-zero data of the list D₁, for example a₂ and a₃.

In the course of step S4 represented in FIG. 1, the processing moduleMTR_CO verifies whether the configuration of the N signs, i.e. 2^(N)possible configurations, corresponds to the value of the remaindermodulo 2^(N) of the sum of the data of the list D₁.

In the example proposed where N=2, there exist 2²=4 differentconfigurations of signs.

These four configurations obey a convention at the coder CO, which isfor example determined in the following manner:

-   -   a remainder equal to zero corresponds to two consecutive        positive signs: +, +;    -   a remainder equal to one corresponds to a consecutive positive        sign and negative sign: +, −;    -   a remainder equal to two corresponds to a consecutive negative        sign and positive sign: −, +;    -   a remainder equal to three corresponds to two consecutive        negative signs: −, −.

If the configuration of the N signs corresponds to the value of theremainder modulo 2^(N) of the sum of the data of the list D₁, there isundertaken step S20 of entropy coding of the data of the aforementionedlist D₁, with the exception of the respective sign of the first twonon-zero data a₂ and a₃, which signs are hidden in the parity of the summodulo 2^(N) of the data of the list D₁.

If such is not the case, there is undertaken step S5 of modifying atleast one modifiable data item of the list D₁. Such a modification isperformed by the processing module MTR_CO of FIG. 2 in such a way thatthe remainder modulo 2^(N) of the sum of the modifiable data of the listD₁ attains the value of each of the two signs to be hidden.

A modified list Dm₁=(a′₁, a′₂, . . . , a′_(P)) is then obtained.

There is thereafter undertaken step S20 of entropy coding of the data ofthe aforementioned list Dm₁, with the exception of the sign of the firstnon-zero data item a₂ and of the sign of the second non-zero data itema₃, which signs are hidden in the parity of the sum modulo 2^(N) of thedata.

A particular embodiment of the invention will now be described, in whichthe coding method according to the invention is still used to code asequence of images according to a binary stream close to that which isobtained by a coding according to the H.264/MPEG-4 AVC standard. In thisembodiment, the coding method according to the invention is for exampleimplemented in a software or hardware manner by modifications of a coderinitially complying with the H.264/MPEG-4 AVC standard.

The coding method according to the invention is represented in the formof an algorithm comprising steps C1 to C40, such as represented in FIG.3.

According to the embodiment of the invention, the coding method isimplemented in a coding device or coder CO1 of which an embodiment isrepresented in FIG. 4.

In accordance with the invention, and as described in the previousexamples, there is undertaken, prior to the coding proper, a splittingof an image IE of a sequence of images to be coded in a predeterminedorder, into a plurality Z of partitions B′₁, B′₂, . . . , B′_(i), . . ., B′_(Z), as represented in FIG. 4.

In the example represented in FIG. 4, said partitions are blocks whichhave a square shape and all have the same size. As a function of thesize of the image which is not necessarily a multiple of the size of theblocks, the last blocks on the left and the last blocks at the bottommight not be square. In an alternative embodiment, the blocks may be forexample of rectangular size and/or not aligned one with another.

Each block or macroblock may moreover itself be divided into sub-blockswhich are themselves subdividable.

Such a splitting is performed by a partitioning software module PCO1represented in FIG. 4 which is identical to the partitioning module PCOrepresented in FIG. 2.

Subsequent to said splitting step, there is undertaken the coding ofeach of the current partitions B′_(i) (i being an integer such that1≦i≦Z) of said image IE.

In the example represented in FIG. 4, such a coding is appliedsuccessively to each of the blocks B′₁ to B′_(Z) of the current imageIE. The blocks are coded according to a traversal such as for examplethe “raster scan” traversal well known to the person skilled in the art.

The coding according to the invention is implemented in a codingsoftware module MC_CO1 of the coder CO1, such as represented in FIG. 4.

In the course of a step C1 represented in FIG. 3, the coding moduleMC_CO1 of FIG. 4 selects as current block B′_(i) the first block B′₁ tobe coded of the current image IE. As represented in FIG. 4, this is thefirst left block of the image IE.

In the course of a step C2 represented in FIG. 3, there is undertakenthe predictive coding of the current block B′₁ by known techniques ofintra and/or inter prediction, in the course of which the block B′₁ ispredicted with respect to at least one previously coded and decodedblock. Such a prediction is performed by a prediction software modulePRED_CO1 such as represented in FIG. 4.

It goes without saying that other modes of intra prediction, such as areproposed in the H.264 standard, are possible.

The current block B′₁ can also be subjected to a predictive coding ininter mode, in the course of which the current block is predicted withrespect to a block arising from a previously coded and decoded image.Other types of prediction are of course conceivable. Among the possiblepredictions for a current block, the optimal prediction is chosenaccording to a rate distortion criterion well known to the personskilled in the art.

Said aforementioned predictive coding step makes it possible toconstruct a predicted block B′p₁ which is an approximation of thecurrent block B′₁. The information relating to this predictive coding isintended to be inscribed in a signal to be transmitted to the decoder.Such information comprises in particular the type of prediction (interor intra) and, if appropriate, the mode of intra prediction, the type ofpartitioning of a block or macroblock if the latter has been subdivided,the reference image index and the displacement vector used in the modeof inter prediction. This information is compressed by the coder CO1.

In the course of a following step C3 represented in FIG. 3, theprediction module PRED_CO1 compares the data relating to the currentblock B′₁ with the data of the predicted block B′p₁. More precisely, inthe course of this step, there is undertaken conventionally thesubtraction of the predicted block B′p₁ from the current block B′₁ toproduce a residual block B′r₁.

In the course of a following step C4 represented in FIG. 3, there isundertaken the transformation of the residual block B′r₁, according to aconventional direct transformation operation, such as for example adiscrete cosine transformation DCT, to produce a transformed block B′t₁.Such an operation is performed by a transform software module MT_CO1,such as represented in FIG. 4.

In the course of a following step C5 represented in FIG. 3, there isundertaken the quantization of the transformed block B′t₁, according toa conventional quantization operation, such as for example a scalarquantization. A block B′q₁ of quantized coefficients is then obtained.Such a step is performed by means of a quantization software moduleMQ_CO1, such as represented in FIG. 4.

In the course of a following step C6 represented in FIG. 3, there isundertaken a traversal, in a predefined order, of the quantizedcoefficients of the block B′q₁. In the example represented this entailsa conventional zig-zag traversal. Such a step is performed by a readingsoftware module ML_CO1, such as represented in FIG. 4. On completion ofstep C6, a one-dimensional list E₁=(ε1, ε2, . . . , εL) of coefficientsis obtained, better known by the term “quantized residual”, where L isan integer greater than or equal to 1. Each of the coefficients of thelist E₁ is associated with various items of digital information whichare intended to undergo an entropy coding. Such items of digitalinformation are described hereinbelow by way of example.

Let us assume that, in the example represented, L=16 and that the listE₁ contains the following sixteen coefficients: E₁=(0, +9, −7, 0, 0, +1,0, −1, +2, 0, 0, +1, 0, 0, 0, 0).

In this instance:

-   -   for each coefficient situated before the last non-zero        coefficient of the list E₁, a digital item of information, such        as a bit, is intended to be coded entropically to indicate        whether the coefficient is or is not zero: if the coefficient is        zero, it is for example the bit of value 0 which will be coded,        while if the coefficient is non-zero, it is the bit of value 1        which will be coded;    -   for each non-zero coefficient+9, −7, +1, −1, +2, +1, a digital        item of information, such as a bit, is intended to be coded        entropically to indicate whether the absolute value of the        coefficient is or is not equal to one: if it is equal to 1, it        is for example the bit of value 1 which will be coded, while if        it is not equal to 1, it is the bit of value 0 which will be        coded;    -   for each non-zero coefficient whose absolute value is not equal        to one and situated before the last non-zero coefficient, such        as the coefficients of value+9, −7, +2, an amplitude item of        information (absolute value of the coefficient from which the        value two is deducted) is coded entropically,    -   for each non-zero coefficient, the sign which is allotted to it        is coded by a digital item of information, such as a bit for        example set to ‘0’ (for the + sign) or to ‘1’ (for the − sign).

The specific coding steps according to the invention will now bedescribed with reference to FIG. 3.

In accordance with the invention, it is decided to avoid entropicallycoding at least one of the aforementioned items of digital information,which is at least one sign of one of said coefficients of the list E₁.

For this purpose, in the course of a step C7 represented in FIG. 3,there is undertaken the choice of the number of signs to be hidden inthe course of the subsequent entropy coding step. Such a step isperformed by a processing software module MTR_CO1, such as representedin FIG. 4.

In the preferred embodiment, the number of signs to be hidden is one orzero. Furthermore, in accordance with said preferred embodiment, it isthe sign of the first non-zero coefficient which is intended to behidden. In the example represented, this therefore entails hiding thesign of the coefficient ε2=+9.

In an alternative embodiment, the number of signs to be hidden is eitherzero, or one, or two, or three, or more.

In accordance with the preferred embodiment of step C7, there isundertaken, in the course of a first sub-step C71 represented in FIG. 3,the determination, on the basis of said list E₁, of a sub-list SE₁containing coefficients able to be modified ε′1, ε′2, . . . , ε′M whereM<L. Such coefficients will be called modifiable coefficients in thesubsequent description.

According to the invention, a coefficient is modifiable if themodification of its quantized value does not cause any desynchronizationat the decoder, once this modified coefficient is processed by thedecoder. Thus, the processing module MTR_CO1 is configured initially soas not to modify:

-   -   the zero coefficient or coefficients situated before the first        non-zero coefficient, in such a way that the decoder does not        allot the value of the hidden sign to this or these zero        coefficients,    -   and for calculation complexity reasons, the zero coefficient or        coefficients situated after the last non-zero coefficient.

In the example represented, on completion of sub-step C71, the sub-listSE₁ obtained is such that SE₁=(9,−7,0,0,1,0,−1,2,0,0,1). Consequently,eleven modifiable coefficients are obtained.

In the course of a following sub-step C72 represented in FIG. 3, theprocessing module MTR_CO1 undertakes the comparison of the number ofmodifiable coefficients with a predetermined threshold TSIG. In thepreferred embodiment, TSIG equals 4.

If the number of modifiable coefficients is less than the thresholdTSIG, there is undertaken, in the course of a step C20 represented inFIG. 3, a conventional entropy coding of the coefficients of the listE₁, such as that carried out for example in a CABAC coder, designated bythe reference CE_CO1 in FIG. 4. For this purpose, the sign of eachnon-zero coefficient of the list E₁ is coded entropically.

If the number of modifiable coefficients is greater than the thresholdTSIG, in the course of a step C8 represented in FIG. 3, the processingmodule MTR_CO1 calculates the value of a function f which isrepresentative of the coefficients of the sub-list SE₁.

In the preferred embodiment where a single sign is intended to be hiddenin the signal to be transmitted to the decoder, the function f is theparity of the sum of the coefficients of the sub-list SE₁.

In the course of a step C9 represented in FIG. 3, the processing moduleMTR_CO1 verifies whether the parity of the value of the sign to behidden corresponds to the parity of the sum of the coefficients of thesub-list SE₁, by virtue of a convention defined previously at the coderCO1.

In the example proposed, said convention is such that a positive sign isassociated with a bit of value equal to zero, while a negative sign isassociated with a bit of value equal to one.

If, in accordance with the convention adopted in the coder CO1 accordingto the invention, the sign is positive, thereby corresponding to a zerocoding bit value, and if the sum of the coefficients of the sub-list SE₁is even, there is undertaken the step C20 of entropy coding of thecoefficients of the aforementioned list E₁, with the exception of thesign of the coefficient ε2.

If, still in accordance with the convention adopted in the coder CO1according to the invention, the sign is negative, thereby correspondingto a one coding bit value, and if the sum of the coefficients of thesub-list SE₁ is odd, there is also undertaken the step C20 of entropycoding of the coefficients of the aforementioned list E₁, with theexception of the sign of the coefficient ε2.

If, in accordance with the convention adopted in the coder CO1 accordingto the invention, the sign is positive, thereby corresponding to a zerocoding bit value, and if the sum of the coefficients of the sub-list SE₁is odd, there is undertaken, in the course of a step C10 represented inFIG. 3, a modification of at least one modifiable coefficient of thesub-list SE₁.

If, still in accordance with the convention adopted in the coder CO1according to the invention, the sign is negative, thereby correspondingto a one coding bit value, and if the sum of the coefficients of thesub-list SE₁ is even, there is also undertaken step C10 of modifying atleast one modifiable coefficient of the sub-list SE₁.

Such a modification operation is performed by the processing moduleMTR_CO1 of FIG. 4.

In the exemplary embodiment where SE₁=(+9,−7,0,0,+1,0,−1,+2,0,0,+1), thetotal sum of the coefficient is equal to 5, and is therefore odd. Sothat the decoder can reconstruct the positive sign allotted to the firstnon-zero coefficient, ε2=+9, without the coder CO1 having to transmitthis coefficient to the decoder, the parity of the sum must become even.Consequently, the processing module MTR_CO1 tests, in the course of saidstep C10, various modifications of coefficients of the sub-list SE₁, allaimed at changing the parity of the sum of the coefficients. In thepreferred embodiment, there is undertaken the addition of +1 or −1 toeach modifiable coefficient and the selection of a modification fromamong all those performed.

In the preferred embodiment, such a selection constitutes the optimalprediction according to a performance criterion which is for example thebitrate distortion criterion well known to the person skilled in theart. Such a criterion is expressed by equation (1) hereinbelow:

J=D+λR  (1)

whereD represents the distortion between the original macroblock and thereconstructed macroblock, R represents the cost in bits of the coding ofthe coding information and λ represents a Lagrange multiplier, the valueof which can be fixed prior to the coding.

In the example proposed, the modification which gives rise to an optimalprediction according to the aforementioned bitrate-distortion criterionis the addition of the value 1 to the second coefficient−7 of thesub-list SE₁.

A modified sub-list SEm₁=(+9,−6,0,0,+1,0,−1,+2,0,0,+1) is then obtainedon completion of step C10.

It should be noted that in the course of this step, certainmodifications are prohibited. Thus, in the case where the first non-zerocoefficient ε2 would have been equal to +1, it would not have beenpossible to add−1 to it, since it would have become zero, and it wouldthen have lost its characteristic of first non-zero coefficient of thelist E₁. The decoder would then have subsequently allocated the decodedsign (by calculation of the parity of the sum of the coefficients) toanother coefficient, and there would then have been a decoding error.

In the course of a step C11 represented in FIG. 3, the processing moduleMTR_CO1 undertakes a corresponding modification of the list E₁. Thefollowing modified list Em₁=(0,+9,−6,0,0,+1,0,−1,+2,0,0,+1,0,0,0,0) isthen obtained.

There is thereafter undertaken the step C20 of entropy coding of thecoefficients of the aforementioned list Em₁, with the exception of thesign of the coefficient ε2, which is the + sign of the coefficient 9 inthe example proposed, which sign is hidden in the parity of the sum ofthe coefficients.

It should be noted that the set of amplitudes of the coefficients of thelist E₁ or of the modified list Em₁ is coded before the set of signs,with the exclusion of the sign of the first non-zero coefficient ε2which is not coded, as has been explained hereinabove.

In the course of a following step C30 represented in FIG. 3, the codingmodule MC_CO1 of FIG. 4 tests whether the coded current block is thelast block of the image IE.

If the current block is the last block of the image IE, in the course ofa step C40 represented in FIG. 3, the coding method is terminated.

If such is not the case, there is undertaken the selection of the blockfollowing B′₁ which is then coded in accordance with the aforementionedraster scan order of traversal, by iteration of steps C1 to C20, for1≦i≦Z.

Once the entropy coding of all the blocks B′₁ to B′_(Z) has been carriedout, there is undertaken the construction of a signal F′ representing,in binary form, said coded blocks.

The construction of the binary signal F′ is implemented in a streamconstruction software module CF1, such as represented in FIG. 4.

The stream F′ is thereafter transmitted by a communication network (notrepresented), to a remote terminal. The latter comprises a decoder whichwill be described in greater detail in the subsequent description.

Another embodiment of the invention will now be described, mainly withreference to FIG. 3.

This other embodiment is distinguished from the previous one solely bythe number of coefficients to be hidden which is either 0, or N, N beingan integer such that N≧2.

For this purpose, the aforementioned comparison sub-step C72 is replacedwith sub-step C72 a represented dashed in FIG. 3, in the course of whichthere is undertaken the comparison of the number of modifiablecoefficients with several predetermined thresholds0<TSIG_(—)1<TSIG_(—)2<TSIG_(—)3 . . . , in such a way that if the numberof modifiable coefficients lies between TSIG_N and TSIG_N+1, N signs areintended to be hidden.

If the number of modifiable coefficients is less than the firstthreshold TSIG_(—)1, there is undertaken, in the course of theaforementioned step C20, the conventional entropy coding of thecoefficients of the list E₁. For this purpose, the sign of each non-zerocoefficient of the list E₁ is coded entropically.

If the number of modifiable coefficients lies between the thresholdTSIG_N and TSIG_N+1, in the course of a step C8 represented in FIG. 3,the processing module MTR_CO1 calculates the value of a function f whichis representative of the coefficients of the sub-list SE₁.

In this other embodiment, the decision at the coder being to hide Nsigns, the function f is the remainder modulo 2^(N) of the sum of thecoefficients of the sub-list SE₁. It is assumed that in the exampleproposed, N=2, the two signs to be hidden are the first two signs of thefirst two non-zero coefficients respectively, namely ε2 and ε3.

In the course of the following step C9 represented in FIG. 3, theprocessing module MTR_CO1 verifies whether the configuration of the Nsigns, i.e. 2^(N) possible configurations, corresponds to the value ofthe remainder modulo 2^(N) of the sum of the coefficients of thesub-list SE₁.

In the example proposed where N=2, there exist 2²=4 differentconfigurations of signs.

These four configurations obey a convention at the coder CO1, which isfor example determined in the following manner:

-   -   a remainder equal to zero corresponds to two consecutive        positive signs: +, +;    -   a remainder equal to one corresponds to a consecutive positive        sign and negative sign: +, −;    -   a remainder equal to two corresponds to a consecutive negative        sign and positive sign: −, +;    -   a remainder equal to three corresponds to two consecutive        negative signs: −, −.

If the configuration of the N signs corresponds to the value of theremainder modulo 2^(N) of the sum of the coefficients of the sub-listSE₁, there is undertaken the step C20 of entropy coding of thecoefficients of the aforementioned list E₁, with the exception of thesign of the coefficient ε2 and of the coefficient ε3, which signs arehidden in the parity of the sum modulo 2^(N) of the coefficients.

If such is not the case, there is undertaken step C10 of modifying atleast one modifiable coefficient of the sub-list SE₁. Such amodification is performed by the processing module MTR_CO1 of FIG. 4, insuch a way that the remainder modulo 2^(N) of the sum of the modifiablecoefficients of the sub-list SE₁ attains the value of each of the twosigns to be hidden.

In the course of the aforementioned step C11, the processing moduleMTR_CO1 undertakes a corresponding modification of the list E₁. Amodified list Em₁ is then obtained.

There is thereafter undertaken step C20 of entropy coding of thecoefficients of the aforementioned list Em₁, with the exception of thesign of the coefficient ε2 and of the sign of the coefficient ε3, whichsigns are hidden in the parity of the sum modulo 2^(N) of thecoefficients.

Detailed Description of the Decoding Part

A general embodiment of the decoding method according to the inventionwill now be described, in which the decoding method is implemented in asoftware or hardware manner by modifications of a decoder initiallycomplying with the H.264/MPEG-4 AVC standard.

The decoding method according to the invention is represented in theform of an algorithm comprising steps SD1 to SD7 represented in FIG. 5.

According to the general embodiment of the invention, the decodingmethod according to the invention is implemented in a decoding device ordecoder DO, such as represented in FIG. 6, which is suitable forreceiving the stream F delivered by the coder CO of FIG. 2.

In the course of a preliminary step, not represented in FIG. 5, there isundertaken the identification, in the data signal F received, of thepartitions B₁ to B_(Z) which have been coded previously by the coder CO.In the preferred embodiment, said partitions are blocks which have asquare shape and all have the same size. As a function of the size ofthe image which is not necessarily a multiple of the size of the blocks,the last blocks on the left and the last blocks at the bottom may not besquare. In an alternative embodiment, the blocks may be for example ofrectangular size and/or not aligned one with another.

Each block or macroblock may moreover itself be divided into sub-blockswhich are themselves subdividable.

Such an identification is performed by a stream analysis software moduleEX_DO, such as represented in FIG. 6.

In the course of a step SD1 represented in FIG. 5, the module EX_DO ofFIG. 6 selects as current block B_(i) the first block B₁ to be decoded.Such a selection consists for example in placing a pointer for readingin the signal F at the start of the data of the first block B₁.

There is thereafter undertaken the decoding of each of the selectedcoded blocks.

In the example represented in FIG. 5, such a decoding is appliedsuccessively to each of the coded blocks B₁ to B_(Z). The blocks aredecoded according to for example a “raster scan” traversal well known tothe person skilled in the art.

The decoding according to the invention is implemented in a decodingsoftware module MD_DO of the decoder DO, such as represented in FIG. 6.

In the course of a step SD2 represented in FIG. 5, there is firstlyundertaken the entropy decoding of the first current block B₁ which hasbeen selected. Such an operation is performed by an entropy decodingmodule DE_DO represented in FIG. 6, for example of CABAC type. In thecourse of this step, the module DE_DO performs an entropy decoding ofthe items of digital information corresponding to the amplitude of eachof the coded data of the list D₁ or of the modified list Dm₁. At thisjuncture, only the signs of the data of the list D₁ or of the modifiedlist Dm₁ are not decoded.

In the case where the processing module MTR_DO receives the list D₁=(a₁,a₂, . . . , a_(P)), there is undertaken, in the course of a step SD3represented in FIG. 5, a conventional entropy decoding of all the signsof the data of the list D₁. Such a decoding is performed by the CABACdecoder, designated by the reference DE_DO in FIG. 6. For this purpose,the sign of each non-zero data item of the list D₁ is decodedentropically.

In the case where the processing module MTR_DO receives the modifiedlist Dm₁=(a′₁, a′₂, . . . , a′_(P)), there is undertaken, in the courseof said step SD3, the conventional entropy decoding of all the signs ofthe data of the list Dm₁, with the exception of the sign of the firstnon-zero data item a2.

In the course of a step SD4 represented in FIG. 5, the processing moduleMTR_DO calculates the value of a function f which is representative ofthe data of the list Dm₁, so as to determine whether the calculatedvalue is even or odd.

In the preferred embodiment where a single sign is hidden in the signalF, the function f is the parity of the sum of the data of the list Dm₁.

In accordance with the convention used at the coder CO, which is thesame at the decoder DO, an even value of the sum of the data of the listDm₁ signifies that the sign of the first non-zero data item of themodified list Dm₁ is positive, while an odd value of the sum of the dataof the list Dm₁ signifies that the sign of the first non-zero data itemof the modified list Dm₁ is negative.

In the exemplary embodiment, the total sum of the data is even.Consequently, on completion of step SD4, the processing module MTR_DOdeduces therefrom that the hidden sign of the first non-zero data itema2 is positive.

In the course of a step SD5 represented in FIG. 5, there is undertakenthe construction of the decoded block BD₁. Such an operation isperformed by a reconstruction software module MR_DO represented in FIG.6.

In the course of a step SD6 represented in FIG. 5, the decoding moduleMD_DO tests whether the decoded current block is the last blockidentified in the signal F.

If the current block is the last block of the signal F, in the course ofa step SD7 represented in FIG. 5, the decoding method is terminated.

If such is not the case, there is undertaken the selection of thefollowing block B_(i) to be decoded, in accordance with theaforementioned raster scan order of traversal, by iteration of steps SD1to SD5, for 1≦i≦Z.

Another embodiment of the invention will now be described, mainly withreference to FIG. 5.

This other embodiment is distinguished from the previous one solely bythe number of hidden signs which is now equal to N, N being an integersuch that N≧2.

For this purpose, in the course of the aforementioned step SD3, there isundertaken the conventional entropy decoding of all the signs of thedata of the list Dm₁, with the exception of the N respective signs ofthe first few non-zero data of said modified list Dm₁, said N signsbeing hidden.

In this other embodiment, the processing module MTR_DO calculates, inthe course of step SD4, the value of the function f which is theremainder modulo 2^(N) of the sum of the data of the list Dm₁. It isassumed that in the example proposed, N=2.

The processing module MTR_DO then deduces therefrom the configuration ofthe two hidden signs which are allotted respectively to each of thefirst two non-zero data a2 and a3, according to the convention used oncoding.

Once these two signs have been reconstructed, there is undertaken theimplementation of steps SD5 to SD7 described hereinabove.

A particular embodiment of the decoding method according to theinvention will now be described, in which the decoding method isimplemented in a software or hardware manner by modifications of adecoder initially complying with the H.264/MPEG-4 AVC standard.

The decoding method according to the invention is represented in theform of an algorithm comprising steps D1 to D12 represented in FIG. 7.

According to the embodiment of the invention, the decoding methodaccording to the invention is implemented in a decoding device ordecoder DO1, such as represented in FIG. 8, which is able to process thesignal F′ delivered by the coder CO1 of FIG. 4.

In the course of a preliminary step, not represented in FIG. 7, there isundertaken the identification, in the data signal F′ received, of thepartitions B′₁ to B′_(Z) which have been coded previously by the coderCO1. In the preferred embodiment, said partitions are blocks which havea square shape and all have the same size. As a function of the size ofthe image which is not necessarily a multiple of the size of the blocks,the last blocks on the left and the last blocks at the bottom may not besquare. In an alternative embodiment, the blocks may be for example ofrectangular size and/or not aligned one with another.

Each block or macroblock may moreover itself be divided into sub-blockswhich are themselves subdividable.

Such an identification is performed by a stream analysis software moduleEX_DO1, such as represented in FIG. 8.

In the course of a step D1 represented in FIG. 7, the module EX_DO1 ofFIG. 8 selects as current block B′₁ the first block B′₁ to be decoded.Such a selection consists for example in placing a pointer for readingin the signal F′ at the start of the data of the first block B′₁.

There is thereafter undertaken the decoding of each of the selectedcoded blocks.

In the example represented in FIG. 7, such a decoding is appliedsuccessively to each of the coded blocks B′₁ to B′_(Z). The blocks aredecoded according to for example a “raster scan” traversal well known tothe person skilled in the art.

The decoding according to the invention is implemented in a decodingsoftware module MD_DO1 of the decoder DO1, such as represented in FIG.8.

In the course of a step D2 represented in FIG. 7, there is firstlyundertaken the entropy decoding of the first current block B′₁ which hasbeen selected. Such an operation is performed by an entropy decodingmodule DE_DO1 represented in FIG. 8, for example of CABAC type. In thecourse of this step, the module DE_DO1 performs an entropy decoding ofthe digital information corresponding to the amplitude of each of thecoded coefficients of the list E₁ or of the modified list Em₁. At thisjuncture, only the signs of the coefficients of the list E₁ or of themodified list Em₁ are not decoded.

In the course of a step D3 represented in FIG. 7, there is undertakenthe determination of the number of signs liable to have been hidden inthe course of the previous step of entropy coding C20. Such a step D3 isperformed by a processing software module MTR_DO1, such as representedin FIG. 8. Step D3 is similar to the aforementioned step C7 ofdetermining the number of signs to be hidden.

In the preferred embodiment, the number of hidden signs is one or zero.Furthermore, in accordance with said preferred embodiment, it is thesign of the first non-zero coefficient which is hidden. In the examplerepresented, this therefore entails the positive sign of the coefficientε2=+9.

In an alternative embodiment, the number of hidden signs is either zero,or one, or two, or three, or more.

In accordance with the preferred embodiment of step D3, there isundertaken, in the course of a first sub-step D31 represented in FIG. 7,the determination, on the basis of said list E₁ or of the modified listEm₁, of a sub-list containing coefficients ε′1, ε′2, . . . , ε′M whereM<L liable to have been modified on coding.

Such a determination is performed in the same manner as in theaforementioned coding step C7.

Like the aforementioned processing module MTR_CO1, the processing moduleMTR_DO1 is configured initially so as not to modify:

-   -   the zero coefficient or coefficients situated before the first        non-zero coefficient,    -   and for calculation complexity reasons, the zero coefficient or        coefficients situated after the last non-zero coefficient.

In the example represented, on completion of sub-step D31, this entailsthe sub-list SEm₁ such that SEm₁=(9, −6, 0, 0, 1, 0, −1, 2, 0, 0, 1).Consequently, eleven coefficients liable to have been modified areobtained.

In the course of a following sub-step D32 represented in FIG. 7, theprocessing module MTR_DO1 undertakes the comparison of the number ofcoefficients liable to have been modified with a predetermined thresholdTSIG. In the preferred embodiment, TSIG equals 4.

If the number of coefficients liable to have been modified is less thanthe threshold TSIG, there is undertaken, in the course of a step D4represented in FIG. 7, a conventional entropy decoding of all the signsof the coefficients of the list E₁. Such a decoding is performed by theCABAC decoder, designated by the reference DE_DO1 in FIG. 8. For thispurpose, the sign of each non-zero coefficient of the list E₁ is decodedentropically.

If the number of coefficients liable to have been modified is greaterthan the threshold TSIG, there is undertaken, in the course of said stepD4, the conventional entropy decoding of all the signs of thecoefficients of the list Em₁, with the exception of the sign of thefirst non-zero coefficient ε2.

In the course of a step D5 represented in FIG. 7, the processing moduleMTR_DO1 calculates the value of a function f which is representative ofthe coefficients of the sub-list SEm₁ so as to determine whether thecalculated value is even or odd.

In the preferred embodiment where a single sign is hidden in the signalF′, the function f is the parity of the sum of the coefficients of thesub-list SEm₁.

In accordance with the convention used at the coder CO1, which is thesame at the decoder DO1, an even value of the sum of the coefficients ofthe sub-list SEm₁ signifies that the sign of the first non-zerocoefficient of the modified list Em₁ is positive, while an odd value ofthe sum of the coefficients of the sub-list SEm₁ signifies that the signof the first non-zero coefficient of the modified list Em₁ is negative.

In the exemplary embodiment where SEm₁=(+9,−6,0,0,+1,0,−1,+2,0,0,+1),the total sum of the coefficients is equal to 6, and is therefore even.Consequently, on completion of step D5, the processing module MTR_DO1deduces therefrom that the hidden sign of the first non-zero coefficientε2 is positive.

In the course of a step D06 represented in FIG. 7, and with the aid ofall the items of digital information reconstructed in the course ofsteps D2, D4 and D5, there is undertaken the reconstruction of thequantized coefficients of the block B′q₁ in a predefined order. In theexample represented, this entails a zig-zag traversal inverse to thezig-zag traversal performed in the course of the aforementioned codingstep C6. Such a step is performed by a reading software module ML_DO1,such as represented in FIG. 8. More precisely, the module ML_DO1undertakes the writing of the coefficients of the list E₁(one-dimensional) to the block B′q₁ (two-dimensional), using saidinverse zig-zag order of traversal.

In the course of a step D7 represented in FIG. 7, there is undertakenthe dequantization of the quantized residual block B′q₁ according to aconventional dequantization operation which is the operation inverse tothe quantization performed on coding in the aforementioned step C5, soas to produce a decoded dequantized block BD′q₁. Such a step isperformed by means of a dequantization software module MDQ_DO1, such asrepresented in FIG. 8.

In the course of a step D8 represented in FIG. 7, there is undertakenthe inverse transformation of the dequantized block BD′q₁ which is theoperation inverse to the direct transformation performed on coding inthe aforementioned step C4. A decoded residual block BD′r₁ is thenobtained. Such an operation is performed by an inverse transformsoftware module MTI_DO1, such as represented in FIG. 8.

In the course of a step D9 represented in FIG. 7, there is undertakenthe predictive decoding of the current block B′₁. A predictive decodingsuch as this is performed conventionally by known techniques of intraand/or inter prediction, in the course of which the block B′₁ ispredicted with respect to at least one previously decoded block. Such anoperation is performed by a predictive decoding module PRED_DO1 such asrepresented in FIG. 8.

It goes without saying that other modes of intra prediction, such as areproposed in the H.264 standard, are possible.

In the course of this step, the predictive decoding is performed withthe aid of the syntax elements decoded in the previous step andcomprising in particular the type of prediction (inter or intra) and, ifappropriate, the mode of intra prediction, the type of partitioning of ablock or macroblock if the latter has been subdivided, the referenceimage index and the displacement vector used in the mode of interprediction.

Said aforementioned predictive decoding step makes it possible toconstruct a predicted block B′p₁.

In the course of a step D10 represented in FIG. 7, there is undertakenthe construction of the decoded block BD′₁ by adding the decodedresidual block BD′r₁ to the predicted block B′p₁. Such an operation isperformed by a reconstruction software module MR_DO1 represented in FIG.8.

In the course of a step D11 represented in FIG. 7, the decoding moduleMD_DO1 tests whether the decoded current block is the last blockidentified in the signal F′.

If the current block is the last block of the signal F′, in the courseof a step D12 represented in FIG. 7, the decoding method is terminated.

If such is not the case, there is undertaken the selection of thefollowing block B′₁ to be decoded in accordance with the aforementionedraster scan order of traversal, by iteration of steps D1 to D10, for1≦i≦Z.

Another embodiment of the invention will now be described, mainly withreference to FIG. 7.

This other embodiment is distinguished from the previous one solely bythe number of hidden coefficients which is either 0, or N, N being aninteger such that N≧2.

For this purpose, the aforementioned comparison sub-step D32 is replacedwith sub-step D32 a represented dashed in FIG. 7, in the course of whichthere is undertaken the comparison of the number of coefficients liableto have been modified with several predetermined thresholds0<TSIG_(—)1<TSIG_(—)2<TSIG_(—)3 . . . , in such a way that if the numberof said coefficients lies between TSIG_N and TSIG_N+1, N signs have beenhidden.

If the number of said coefficients is less than the first thresholdTSIG_(—)1, there is undertaken, in the course of the aforementioned stepD4, the conventional entropy decoding of all the signs of thecoefficients of the list E₁. For this purpose, the sign of each non-zerocoefficient of the list E₁ is decoded entropically.

If the number of said coefficients lies between the threshold TSIG_N andTSIG_N+1, there is undertaken, in the course of the aforementioned stepD4, the conventional entropy decoding of all the signs of thecoefficients of the list E₁, with the exception of the N respectivesigns of the first non-zero coefficients of said modified list Em₁, saidN signs being hidden.

In this other embodiment, the processing module MTR_DO1 calculates, inthe course of step D5, the value of the function f which is theremainder modulo 2^(N) of the sum of the coefficients of the sub-listSEm₁. It is assumed that in the example proposed, N=2.

The processing module MTR_DO1 then deduces therefrom the configurationof the two hidden signs which are allotted respectively to each of thefirst two non-zero coefficients ε2 and ε3, according to the conventionused on coding.

Once these two signs have been reconstructed, steps D6 to D12 describedhereinabove are carried out.

It goes without saying that the embodiments which have been describedhereinabove have been given purely by way of indication and are not atall limiting, and that numerous modifications can easily be made by theperson skilled in the art without however departing from the scope ofthe invention.

Thus for example, according to a simplified embodiment with respect tothat represented in FIG. 4, the coder CO1 could be configured to hide atleast N′ predetermined signs, with N′≧1, instead of either zero, or oneor N predetermined signs. In this case, the comparison step C72 or C72 awould be dispensed with. In a corresponding manner, according to asimplified embodiment with respect to that represented in FIG. 8, thedecoder DO1 would be configured to reconstruct N′ predetermined signsinstead of either zero, or one or N predetermined signs. In this case,the comparison step D32 or D32 a would be dispensed with. Furthermore,the decision criterion applied in the coding step C72 and in thedecoding step D32 could be replaced with another type of criterion. Forthis purpose, instead of comparing with a threshold the number ofmodifiable coefficients or the number of coefficients liable to havebeen modified, the processing module MTR_CO1 or MTR_DO1 could apply adecision criterion which is respectively dependent on the sum of theamplitudes of the coefficients that are modifiable or liable to havebeen modified, or else the number of zeros present among thecoefficients that are modifiable or liable to have been modified.

1. (canceled)
 2. A computer-implemented method for decoding asign-data-hiding enabled partition of an image, comprising: obtaining aset of coefficients representing a residual block of thesign-data-hiding enabled partition, the set of coefficients including afirst non-zero coefficient that is without a sign designation; computinga sum of amplitude values of non-zero coefficients in the set ofcoefficients; computing, using the sum of the amplitude values of thenon-zero coefficients, parity data; and designating a sign for the firstnon-zero coefficient based on the parity data.
 3. The method of claim 2,wherein designating the sign for the first non-zero coefficientcomprises: determining that a value of the parity data is equal to aspecific value assigned to a positive sign; and in response todetermining that the value of the parity data is equal to the specificvalue assigned to the positive sign, designating the positive sign forthe first non-zero coefficient.
 4. The method of claim 2, whereindesignating the sign for the first non-zero coefficient comprises:determining that a value of the parity data is equal to a specific valueassigned to a negative sign; and in response to determining that thevalue of the parity data is equal to the specific value assigned to thenegative sign, designating the negative sign for the first non-zerocoefficient.
 5. The method of claim 2, comprising: determining that acount of non-zero coefficients in the set of coefficients satisfies athreshold; and in response to determining that the count of non-zerocoefficients in the set of coefficients satisfies the threshold,determining that the first non-zero coefficient is without a signdesignation.
 6. The method of claim 2, comprising: determining that asign-data-hiding encoding is enabled for the set of coefficients.
 7. Acomputer-implemented method for encoding a data item, comprising:obtaining a first set of coefficients representing the data item, thefirst set of coefficients including a first non-zero coefficient havinga sign that is positive or negative; applying a function to the firstset of coefficients to generate output data; comparing the output datawith a value assigned to the sign of the first non-zero coefficient;determining that the comparing does not satisfy a criteria; in responseto determining that the comparing does not satisfy the criteria,modifying at least a specific non-zero coefficient in the first set ofcoefficients; and encoding a second set of coefficients including (i)the first non-zero coefficient without the sign, (ii) the modifiedspecific non-zero coefficient, and (iii) other coefficients in the firstset of coefficients.
 8. The method of claim 7, wherein applying thefunction to the first set of coefficients comprises: computing a sum ofnon-zero coefficients in the first set of coefficients; and computing,using the sum of the non-zero coefficients, a parity bit as the outputdata.
 9. The method of claim 8, wherein determining that the comparingdoes not satisfy a criteria comprises determining that the parity bit isnot equal to the value assigned to the sign of the first non-zerocoefficient.
 10. The method of claim 8, wherein modifying the non-zerocoefficient in the first set of coefficients comprises modifying thenon-zero coefficient in the first set of coefficients such that the sumof non-zero coefficients in the second set of coefficients yields aparity bit that is equal to the value assigned to the sign of the firstnon-zero coefficient.
 11. The method of claim 7, wherein applying thefunction to the first set of coefficients to generate output datacomprises: determining that a count of non-zero coefficients in thefirst set of coefficients satisfies a threshold; and in response todetermining that the count of non-zero coefficients in the first set ofcoefficients satisfies the threshold, applying the function to the firstset of coefficients.
 12. The method of claim 7, wherein modifying thenon-zero coefficient in the first set of coefficients comprises:determining that modifying the specific non-zero coefficient in thefirst set of coefficients provides an optimal prediction based on aperformance criteria; and in response to determining that modifying thespecific non-zero coefficient in the first set of coefficients providesthe optimal prediction, selecting the specific non-zero coefficient forthe modification.
 13. The method of claim 12, wherein the performancecriteria includes a bitrate distortion criteria.
 14. The method of claim7, wherein modifying at least the specific non-zero coefficient in thefirst set of coefficients comprises modifying the specific non-zerocoefficient to generate a second, non-zero coefficient.
 15. The methodof claim 7, comprising: determining that a count of non-zerocoefficients in the first set of coefficients satisfies a threshold; andin response to determining that the count of non-zero coefficients inthe first set of coefficients satisfies the threshold, determining anumber of non-zero coefficients for sign-hiding based on the threshold.16. The method of claim 15, wherein applying the function to the firstset of coefficients comprises: computing a sum of non-zero coefficientsin the first set of coefficients; and computing remainder data based ona division between the sum and a specific number, wherein comparing theoutput data with the value assigned to the sign of the first non-zerocoefficient comprises comparing the remainder data with a value assignedto the non-zero coefficients determined for sign-hiding, and whereindetermining that the comparing does not satisfy a criteria comprisesdetermining that a value of the remainder data is not equal to the valueassigned to the non-zero coefficients determined for sign-hiding. 17.The method of claim 7, wherein encoding the second set of coefficientscomprises: entropy encoding the second set of coefficients; andtransmitting the entropy encoded second set of coefficients.
 18. Themethod of claim 7, wherein the specific non-zero coefficient is thefirst non-zero coefficient.
 19. The method of claim 7, wherein thespecific non-zero coefficient is not the first non-zero coefficient. 20.A decoder for decoding a sign-data-hiding enabled partition of an image,comprising: one or more processors; and a computer-readable mediumcoupled to the one or more processors having instructions stored thereonwhich, when executed by the one or more processors, cause the one ormore processors to perform operations comprising: obtaining a set ofcoefficients representing a residual block of the sign-data-hidingenabled partition, the set of coefficients including a first non-zerocoefficient that is without a sign designation; computing a sum ofamplitude values of non-zero coefficients in the set of coefficients;computing, using the sum of the amplitude values of the non-zerocoefficients, parity data; and designating a sign for the first non-zerocoefficient based on the parity data.
 21. The decoder of claim 20,wherein the operations comprise: determining that a count of non-zerocoefficients in the set of coefficients satisfies a threshold; and inresponse to determining that the count of non-zero coefficients in theset of coefficients satisfies the threshold, determining that the firstnon-zero coefficient is without a sign designation.